//package com.yby6.common.core.domain;
//
//
//import lombok.extern.slf4j.Slf4j;
//import org.apache.commons.lang3.ObjectUtils;
//import org.apache.shiro.SecurityUtils;
//import org.apache.shiro.subject.Subject;
//import com.yby6.common.constant.Constants;
//import com.yby6.common.constant.HttpStatus;
//import com.yby6.common.exception.YangBuYiException;
//
//import java.util.List;
//
///**
// * @description: 杨不易网站:www.yangbuyi.top
// * @program: yangbuyiopenHis2020
// * @ClassName: ShiroSecurityUtils
// * @create: 2020-08-29 19:39
// * @author: yangbuyi
// * @since： JDK1.8
// * @ShiroSecurityUtils: 封装对象的操作$
// **/
//
//@Slf4j
//public class ShiroSecurityUtils {
//
//    /***
//     * 得到当前登陆的用户对象的ActiveUser
//     */
//    public static ActiveUser getCurrentActiveUser () {
//        Subject subject = SecurityUtils.getSubject();
//        ActiveUser activerUser = (ActiveUser) subject.getPrincipal();
//        log.info("获取当前登录的用户:{ActiveUser}" + activerUser);
//        if (activerUser == null) {
//            throw new YangBuYiException(HttpStatus.UNAUTHORIZED, "当前登录状态过期");
//        }
//        return activerUser;
//    }
//
//    /***
//     * 得到当前登陆的用户对象User
//     */
//    public static SysUser getCurrentUser () {
//        final SysUser user = getCurrentActiveUser().getSysUser();
//        if (ObjectUtils.isEmpty(user)) {
//            throw new YangBuYiException(HttpStatus.UNAUTHORIZED, "当前登录状态过期");
//        }
//        if (ObjectUtils.isNotEmpty(user)) {
//            return getCurrentActiveUser().getSysUser();
//        } else {
//            throw new YangBuYiException(HttpStatus.UNAUTHORIZED, "找不到当前登录的信息");
//        }
//    }
//
//    /**
//     * 得到用户名称
//     *
//     * @return
//     */
//    public static SimpleUser getCurrentSimpleUser () {
//        SysUser user = getCurrentActiveUser().getSysUser();
//        if (user == null) {
//            throw new YangBuYiException(HttpStatus.UNAUTHORIZED, "当前登录状态过期");
//        }
//        return new SimpleUser(user.getId(), user.getNickName());
//    }
//
//    /***
//     * 得到当前登陆的用户名称
//     */
//    public static String getCurrentUserName () {
//        return getCurrentActiveUser().getSysUser().getUsername();
//    }
//
//    /***
//     * 得到当前登陆对象的角色编码
//     */
//    public static List<String> getCurrentUserRoles () {
//        return getCurrentActiveUser().getRoles();
//    }
//
//
//    /***
//     * 得到当前登陆对象的权限编码
//     */
//    public static List<String> getCurrentUserPermissions () {
//        return getCurrentActiveUser().getPermissions();
//    }
//
//    /***
//     * 判断当前用户是否是超管
//     */
//    public static boolean isAdmin () {
//        final SysUser user = getCurrentActiveUser().getSysUser();
//        if (ObjectUtils.isEmpty(user)) {
//            return false;
//        }
//        return getCurrentUser().getId().equals(Constants.USER_ADMIN);
//    }
//
//}
